Comandos SQL e Suas Funções

Comando SQL O que o comando faz
SELECTSeleciona dados de uma ou mais tabelas
INSERT INTOInsere novos dados em uma tabela
UPDATEAtualiza dados existentes em uma tabela
DELETERemove dados de uma tabela
CREATE TABLECria uma nova tabela no banco de dados
ALTER TABLEModifica uma tabela existente
DROP TABLERemove uma tabela do banco de dados
CREATE DATABASECria um novo banco de dados
DROP DATABASEExclui um banco de dados
USESeleciona o banco de dados que será utilizado
WHEREFiltra os registros com base em uma condição
ORDER BYOrdena os resultados por uma ou mais colunas
GROUP BYAgrupa os resultados com base em colunas
HAVINGFiltra grupos de resultados após o GROUP BY
JOINCombina registros de duas ou mais tabelas
INNER JOINRetorna registros com correspondência em ambas as tabelas
LEFT JOINTodos da esquerda e correspondentes da direita
RIGHT JOINTodos da direita e correspondentes da esquerda
FULL JOINTodos os registros com correspondência em uma das tabelas
UNIONCombina o resultado de duas instruções SELECT
DISTINCTRetorna apenas valores distintos
LIKEPesquisa por um padrão em uma coluna
INVerifica se um valor está em uma lista
BETWEENVerifica se está dentro de um intervalo
IS NULLVerifica se o valor é nulo
ASDefine um apelido para tabela ou coluna
LIMITDefine o número máximo de registros retornados
OFFSETDefine o ponto inicial dos registros retornados
DEFAULTDefine valor padrão para coluna
PRIMARY KEYDefine uma chave primária
FOREIGN KEYDefine uma chave estrangeira
AUTO_INCREMENTValor auto incrementado automaticamente
NOT NULLImpede que a coluna tenha valores nulos
CHECKImpõe uma condição de validação
INDEXCria um índice para performance
VIEWCria uma visualização (consulta salva)
TRUNCATE TABLERemove todos os registros da tabela
RENAME TABLERenomeia uma tabela existente
GRANTConcede permissões a usuários
REVOKERemove permissões de usuários

Exemplos Práticos de Comandos SQL

Comando SQL Exemplo Prático
SELECTSELECT * FROM funcionarios;
INSERT INTOINSERT INTO funcionarios (nome, cargo) VALUES ('Ana', 'Gerente');
UPDATEUPDATE funcionarios SET cargo = 'Diretora' WHERE nome = 'Ana';
DELETEDELETE FROM funcionarios WHERE nome = 'Ana';
CREATE TABLECREATE TABLE funcionarios (id INT PRIMARY KEY, nome VARCHAR(100));
ALTER TABLEALTER TABLE funcionarios ADD COLUMN salario DECIMAL(10,2);
DROP TABLEDROP TABLE funcionarios;
CREATE DATABASECREATE DATABASE empresa;
DROP DATABASEDROP DATABASE empresa;
USEUSE empresa;
WHERESELECT * FROM funcionarios WHERE cargo = 'Analista';
ORDER BYSELECT * FROM funcionarios ORDER BY nome ASC;
GROUP BYSELECT cargo, COUNT(*) FROM funcionarios GROUP BY cargo;
HAVINGSELECT cargo, COUNT(*) FROM funcionarios GROUP BY cargo HAVING COUNT(*) > 2;
JOINSELECT * FROM funcionarios JOIN departamentos ON funcionarios.depto_id = departamentos.id;
INNER JOINSELECT * FROM funcionarios INNER JOIN departamentos ON funcionarios.depto_id = departamentos.id;
LEFT JOINSELECT * FROM funcionarios LEFT JOIN departamentos ON funcionarios.depto_id = departamentos.id;
RIGHT JOINSELECT * FROM funcionarios RIGHT JOIN departamentos ON funcionarios.depto_id = departamentos.id;
FULL JOINSELECT * FROM funcionarios FULL OUTER JOIN departamentos ON funcionarios.depto_id = departamentos.id;
UNIONSELECT nome FROM funcionarios UNION SELECT nome FROM clientes;
DISTINCTSELECT DISTINCT cargo FROM funcionarios;
LIKESELECT * FROM funcionarios WHERE nome LIKE 'A%';
INSELECT * FROM funcionarios WHERE cargo IN ('Gerente', 'Diretor');
BETWEENSELECT * FROM funcionarios WHERE salario BETWEEN 2000 AND 5000;
IS NULLSELECT * FROM funcionarios WHERE data_saida IS NULL;
ASSELECT nome AS 'Funcionário', cargo AS 'Cargo Atual' FROM funcionarios;
LIMITSELECT * FROM funcionarios LIMIT 5;
OFFSETSELECT * FROM funcionarios LIMIT 5 OFFSET 10;
DEFAULTCREATE TABLE produtos (id INT, nome VARCHAR(50), status VARCHAR(20) DEFAULT 'ativo');
PRIMARY KEYCREATE TABLE funcionarios (id INT PRIMARY KEY, nome VARCHAR(100));
FOREIGN KEYALTER TABLE funcionarios ADD CONSTRAINT fk_depto FOREIGN KEY (depto_id) REFERENCES departamentos(id);
AUTO_INCREMENTid INT AUTO_INCREMENT PRIMARY KEY
NOT NULLnome VARCHAR(100) NOT NULL
CHECKsalario DECIMAL(10,2) CHECK (salario > 0)
INDEXCREATE INDEX idx_nome ON funcionarios(nome);
VIEWCREATE VIEW analistas AS SELECT * FROM funcionarios WHERE cargo = 'Analista';
TRUNCATE TABLETRUNCATE TABLE funcionarios;
RENAME TABLERENAME TABLE funcionarios TO colaboradores;
GRANTGRANT SELECT ON empresa.funcionarios TO 'usuario';
REVOKEREVOKE SELECT ON empresa.funcionarios FROM 'usuario';